/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package MiniProjet.gestionnaires;


import MiniProjet.modeles.Film;
import java.util.Collection;
import java.util.Iterator;
import javax.ejb.EJB;
import javax.ejb.Stateless;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;

/**
 *
 * @author SaLaH
 */
@Stateless
public class GestionnaireAjoutFilm {
    
      @PersistenceContext
    private EntityManager em;


@EJB
private GestionnaireRealisateurs gestionnaireRealisateurs;
@EJB
private GestionnaireActeurs gestionnaireActeurs;
@EJB
private GestionnaireGenres gestionnaireGenres;
@EJB
private GestionnaireRubriques gestionnaireRubriques;


    // Add business logic below. (Right-click in editor and choose
    // "Insert Code > Add Business Method" or "Web Service > Add Operation"


 public Film ajouterFilm(String titre, double prix, int quantite, boolean disponibilite, String resume, String image, Collection<String> genres, String realisateur, Collection<String> acteurs, Collection<String> rubriques) {

        Film f = new Film();

        f.setTitre(titre);
        f.setPrix(prix);
        f.setQuantite(quantite);
        f.setDisponibilite(disponibilite);
        f.setResume(resume);
        f.setImage(image);
        f.setRealisateur(gestionnaireRealisateurs.getRealisateurByNom(realisateur));
        gestionnaireRealisateurs.getRealisateurByNom(realisateur).getFilms().add(f);
        Iterator<String> it = acteurs.iterator();
        Iterator<String> rb = rubriques.iterator();
        Iterator<String> ge = genres.iterator();

        while(it.hasNext()){
            String act = it.next();
             f.getActeurs().add(gestionnaireActeurs.getActeurByNom(act));
             gestionnaireActeurs.getActeurByNom(act).getFilms().add(f);
        }

         while(rb.hasNext()){
            String rub = rb.next();
             f.getRubriques().add(gestionnaireRubriques.getRubriqueByNom(rub));
             gestionnaireRubriques.getRubriqueByNom(rub).getFilms().add(f);
        }

          while(ge.hasNext()){
            String gen = ge.next();
             f.getGenres().add(gestionnaireGenres.getGenreByNom(gen));
             gestionnaireGenres.getGenreByNom(gen).getFilms().add(f);
        }


      em.persist(f);
        return f;

    }
 
}
